package com.sh4.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * crm_wx_pay:
 */
@Entity
@Table(name = "crm_wx_pay")
public class CrmWxPay implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 订单号:订单号
	 */
	private String outTradeNo;

	/**
	 * 商户公众账号ID:商户公众账号ID
	 */
	private String companyId;

	/**
	 * prepay_id:
	 */
	private String prepayId;

	/**
	 * open_id:
	 */
	private String openId;

	/**
	 * customer_code:
	 */
	private String customerCode;

	/**
	 * material_desc:
	 */
	private String materialDesc;

	/**
	 * material_code:
	 */
	private String materialCode;

	/**
	 * type:
	 */
	private String type;

	/**
	 * 支付金额（元）:支付金额（元）
	 */
	private String actualTotalFee;

	/**
	 * 支付微信金额（分）:支付微信金额（分）
	 */
	private String totalFee;

	/**
	 * 退款金额:退款金额
	 */
	private String refundFee;

	/**
	 * status:
	 */
	private String status;

	/**
	 * created_time:
	 */
	private Date createdTime;

	/**
	 * updated_time:
	 */
	private Date updatedTime;

	/**
	 * 交易单号:交易单号
	 */
	private String transactionId;

	/**
	 * fee_type:
	 */
	private String feeType;

	/**
	 * is_subscribe:
	 */
	private String isSubscribe;

	/**
	 * trade_type:
	 */
	private String tradeType;

	/**
	 * result_code:
	 */
	private String resultCode;

	/**
	 * mch_id:
	 */
	private String mchId;

	/**
	 * appid:
	 */
	private String appid;

	/**
	 * time_end:
	 */
	private String timeEnd;

	/**
	 * bank_type:
	 */
	private String bankType;

	/**
	 * cash_fee:
	 */
	private String cashFee;

	/**
	 * return_code:
	 */
	private String returnCode;

	/**
	 * sign:
	 */
	private String sign;

	/**
	 * nonce_str:
	 */
	private String nonceStr;

	/**
	 * openid:
	 */
	private String openid;

	/**
	 * 退货单号:退货单号
	 */
	private String outRefundNo;

	/**
	 * 关联参加聚划算Id:关联参加聚划算Id
	 */
	private String joinId;

	/**
	 * 退款时间:退款时间
	 */
	private Date outRefund;

	public CrmWxPay() {
		super();
	}

	public CrmWxPay(String outTradeNo, String companyId, String prepayId,
			String openId, String customerCode, String materialDesc,
			String materialCode, String type, String actualTotalFee,
			String totalFee, String refundFee, String status, Date createdTime,
			Date updatedTime, String transactionId, String feeType,
			String isSubscribe, String tradeType, String resultCode,
			String mchId, String appid, String timeEnd, String bankType,
			String cashFee, String returnCode, String sign, String nonceStr,
			String openid, String outRefundNo, String joinId, Date outRefund) {
		super();
		this.outTradeNo = outTradeNo;
		this.companyId = companyId;
		this.prepayId = prepayId;
		this.openId = openId;
		this.customerCode = customerCode;
		this.materialDesc = materialDesc;
		this.materialCode = materialCode;
		this.type = type;
		this.actualTotalFee = actualTotalFee;
		this.totalFee = totalFee;
		this.refundFee = refundFee;
		this.status = status;
		this.createdTime = createdTime;
		this.updatedTime = updatedTime;
		this.transactionId = transactionId;
		this.feeType = feeType;
		this.isSubscribe = isSubscribe;
		this.tradeType = tradeType;
		this.resultCode = resultCode;
		this.mchId = mchId;
		this.appid = appid;
		this.timeEnd = timeEnd;
		this.bankType = bankType;
		this.cashFee = cashFee;
		this.returnCode = returnCode;
		this.sign = sign;
		this.nonceStr = nonceStr;
		this.openid = openid;
		this.outRefundNo = outRefundNo;
		this.joinId = joinId;
		this.outRefund = outRefund;
	}

	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	@Id
	@Column(name = "out_trade_no", length = 36, nullable = false)
	public String getOutTradeNo() {
		return outTradeNo;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}

	@Column(name = "company_id", length = 36, nullable = false)
	public String getCompanyId() {
		return companyId;
	}

	public void setPrepayId(String prepayId) {
		this.prepayId = prepayId;
	}

	@Column(name = "prepay_id", length = 64)
	public String getPrepayId() {
		return prepayId;
	}

	public void setOpenId(String openId) {
		this.openId = openId;
	}

	@Column(name = "open_id", length = 36, nullable = false)
	public String getOpenId() {
		return openId;
	}

	public void setCustomerCode(String customerCode) {
		this.customerCode = customerCode;
	}

	@Column(name = "customer_code", length = 36)
	public String getCustomerCode() {
		return customerCode;
	}

	public void setMaterialDesc(String materialDesc) {
		this.materialDesc = materialDesc;
	}

	@Column(name = "material_desc", length = 512)
	public String getMaterialDesc() {
		return materialDesc;
	}

	public void setMaterialCode(String materialCode) {
		this.materialCode = materialCode;
	}

	@Column(name = "material_code", length = 36)
	public String getMaterialCode() {
		return materialCode;
	}

	public void setType(String type) {
		this.type = type;
	}

	@Column(name = "type", length = 1, nullable = false)
	public String getType() {
		return type;
	}

	public void setActualTotalFee(String actualTotalFee) {
		this.actualTotalFee = actualTotalFee;
	}

	@Column(name = "actual_total_fee", length = 255)
	public String getActualTotalFee() {
		return actualTotalFee;
	}

	public void setTotalFee(String totalFee) {
		this.totalFee = totalFee;
	}

	@Column(name = "total_fee", length = 7)
	public String getTotalFee() {
		return totalFee;
	}

	public void setRefundFee(String refundFee) {
		this.refundFee = refundFee;
	}

	@Column(name = "refund_fee", length = 64)
	public String getRefundFee() {
		return refundFee;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	@Column(name = "status", length = 1)
	public String getStatus() {
		return status;
	}

	public void setCreatedTime(Date createdTime) {
		this.createdTime = createdTime;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "created_time")
	public Date getCreatedTime() {
		return createdTime;
	}

	public void setUpdatedTime(Date updatedTime) {
		this.updatedTime = updatedTime;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "updated_time")
	public Date getUpdatedTime() {
		return updatedTime;
	}

	public void setTransactionId(String transactionId) {
		this.transactionId = transactionId;
	}

	@Column(name = "transaction_id", length = 64)
	public String getTransactionId() {
		return transactionId;
	}

	public void setFeeType(String feeType) {
		this.feeType = feeType;
	}

	@Column(name = "fee_type", length = 64)
	public String getFeeType() {
		return feeType;
	}

	public void setIsSubscribe(String isSubscribe) {
		this.isSubscribe = isSubscribe;
	}

	@Column(name = "is_subscribe", length = 64)
	public String getIsSubscribe() {
		return isSubscribe;
	}

	public void setTradeType(String tradeType) {
		this.tradeType = tradeType;
	}

	@Column(name = "trade_type", length = 64)
	public String getTradeType() {
		return tradeType;
	}

	public void setResultCode(String resultCode) {
		this.resultCode = resultCode;
	}

	@Column(name = "result_code", length = 64)
	public String getResultCode() {
		return resultCode;
	}

	public void setMchId(String mchId) {
		this.mchId = mchId;
	}

	@Column(name = "mch_id", length = 64)
	public String getMchId() {
		return mchId;
	}

	public void setAppid(String appid) {
		this.appid = appid;
	}

	@Column(name = "appid", length = 64)
	public String getAppid() {
		return appid;
	}

	public void setTimeEnd(String timeEnd) {
		this.timeEnd = timeEnd;
	}

	@Column(name = "time_end", length = 64)
	public String getTimeEnd() {
		return timeEnd;
	}

	public void setBankType(String bankType) {
		this.bankType = bankType;
	}

	@Column(name = "bank_type", length = 64)
	public String getBankType() {
		return bankType;
	}

	public void setCashFee(String cashFee) {
		this.cashFee = cashFee;
	}

	@Column(name = "cash_fee", length = 64)
	public String getCashFee() {
		return cashFee;
	}

	public void setReturnCode(String returnCode) {
		this.returnCode = returnCode;
	}

	@Column(name = "return_code", length = 64)
	public String getReturnCode() {
		return returnCode;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	@Column(name = "sign", length = 255)
	public String getSign() {
		return sign;
	}

	public void setNonceStr(String nonceStr) {
		this.nonceStr = nonceStr;
	}

	@Column(name = "nonce_str", length = 255)
	public String getNonceStr() {
		return nonceStr;
	}

	public void setOpenid(String openid) {
		this.openid = openid;
	}

	@Column(name = "openid", length = 64)
	public String getOpenid() {
		return openid;
	}

	public void setOutRefundNo(String outRefundNo) {
		this.outRefundNo = outRefundNo;
	}

	@Column(name = "out_refund_no", length = 64)
	public String getOutRefundNo() {
		return outRefundNo;
	}

	public void setJoinId(String joinId) {
		this.joinId = joinId;
	}

	@Column(name = "join_id", length = 64)
	public String getJoinId() {
		return joinId;
	}

	public void setOutRefund(Date outRefund) {
		this.outRefund = outRefund;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "out_refund")
	public Date getOutRefund() {
		return outRefund;
	}

	public String toString() {
		return "CrmWxPay [outTradeNo=" + outTradeNo + ",companyId=" + companyId
				+ ",prepayId=" + prepayId + ",openId=" + openId
				+ ",customerCode=" + customerCode + ",materialDesc="
				+ materialDesc + ",materialCode=" + materialCode + ",type="
				+ type + ",actualTotalFee=" + actualTotalFee + ",totalFee="
				+ totalFee + ",refundFee=" + refundFee + ",status=" + status
				+ ",createdTime=" + createdTime + ",updatedTime=" + updatedTime
				+ ",transactionId=" + transactionId + ",feeType=" + feeType
				+ ",isSubscribe=" + isSubscribe + ",tradeType=" + tradeType
				+ ",resultCode=" + resultCode + ",mchId=" + mchId + ",appid="
				+ appid + ",timeEnd=" + timeEnd + ",bankType=" + bankType
				+ ",cashFee=" + cashFee + ",returnCode=" + returnCode
				+ ",sign=" + sign + ",nonceStr=" + nonceStr + ",openid="
				+ openid + ",outRefundNo=" + outRefundNo + ",joinId=" + joinId
				+ ",outRefund=" + outRefund + "]";
	}

}
